package com.sisSaude.dtos;

import java.util.Vector;

import com.sisSaude.enumerations.Sexo;
import com.sisSaude.utils.MyDouble;

public class QuadroDeRelacaoCinturaQuadrilDTO {

	// fields
	private Vector<ItemDeQuadroDeRelacaoCinturaQuadrilDTO> itens = new Vector<ItemDeQuadroDeRelacaoCinturaQuadrilDTO>();
	private Sexo sexo;
	private String titulo;

	// constructors
	public QuadroDeRelacaoCinturaQuadrilDTO() {
		
	}
	
	// getters
	public Vector<ItemDeQuadroDeRelacaoCinturaQuadrilDTO> getItens() {
		return itens;
	}
	public Sexo getSexo() {
		return sexo;
	}
	public String getTitulo() {
		return titulo;
	}

	// setters
	public void setSexo(Sexo sexo) {
		this.sexo = sexo;
	}
	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}

	// inner class
	public class ItemDeQuadroDeRelacaoCinturaQuadrilDTO {
		
		// fields
		private int[] faixaDeIdade;
		private double[] faixaDeRiscoMuitoAlto;
		private double[] faixaDeRiscoAlto;
		private double[] faixaDeRiscoModerado;
		private double[] faixaDeRiscoBaixo;
		
		// constructors
		public ItemDeQuadroDeRelacaoCinturaQuadrilDTO(int[] faixaDeIdade, double[] faixaDeRiscoBaixo, double[] faixaDeRiscoModerado , double[] faixaDeRiscoAlto, double[] faixaDeRiscoMuitoAlto) {
			this.faixaDeIdade = faixaDeIdade;
			this.faixaDeRiscoMuitoAlto = faixaDeRiscoMuitoAlto;
			this.faixaDeRiscoAlto = faixaDeRiscoAlto;
			this.faixaDeRiscoModerado = faixaDeRiscoModerado;
			this.faixaDeRiscoBaixo = faixaDeRiscoBaixo;
		}

		// getters
		public int[] getFaixaDeIdade() {
			return faixaDeIdade;
		}
		public double[] getFaixaDeRiscoMuitoAlto() {
			return faixaDeRiscoMuitoAlto;
		}
		public double[] getFaixaDeRiscoAlto() {
			return faixaDeRiscoAlto;
		}
		public double[] getFaixaDeRiscoModerado() {
			return faixaDeRiscoModerado;
		}
		public double[] getFaixaDeRiscoBaixo() {
			return faixaDeRiscoBaixo;
		}
		public String getCaptionIdade() {
			if (faixaDeIdade[1] == 0)
				return "> " + faixaDeIdade[0];
			return faixaDeIdade[0] + "-" + faixaDeIdade[1];
		}
		public String getCaption1() {
			if (faixaDeRiscoMuitoAlto[1] == 0)
				return "> " + MyDouble.formatted(faixaDeRiscoMuitoAlto[0]);
			return MyDouble.formatted(faixaDeRiscoMuitoAlto[0]) + " - " + MyDouble.formatted(faixaDeRiscoMuitoAlto[1]);
		}
		public String getCaption2() {
			if (faixaDeRiscoAlto[1] == 0)
				return "> " + MyDouble.formatted(faixaDeRiscoAlto[0]);
			return MyDouble.formatted(faixaDeRiscoAlto[0]) + " - " + MyDouble.formatted(faixaDeRiscoAlto[1]);
		}
		public String getCaption3() {
			if (faixaDeRiscoModerado[1] == 0)
				return "> " + MyDouble.formatted(faixaDeRiscoModerado[0]);
			return MyDouble.formatted(faixaDeRiscoModerado[0]) + " - " + MyDouble.formatted(faixaDeRiscoModerado[1]);
		}
		public String getCaption4() {
			if (faixaDeRiscoBaixo[1] == 0)
				return "> " + MyDouble.formatted(faixaDeRiscoBaixo[0]);
			return MyDouble.formatted(faixaDeRiscoBaixo[0]) + " - " + MyDouble.formatted(faixaDeRiscoBaixo[1]);
		}

		// setters
		public void setFaixaDeIdade(int[] faixaDeIdade) {
			this.faixaDeIdade = faixaDeIdade;
		}
		public void setFaixaDeRiscoMuitoAlto(double[] faixaDeRiscoMuitoAlto) {
			this.faixaDeRiscoMuitoAlto = faixaDeRiscoMuitoAlto;
		}
		public void setFaixaDeRiscoAlto(double[] faixaDeRiscoAlto) {
			this.faixaDeRiscoAlto = faixaDeRiscoAlto;
		}
		public void setFaixaDeRiscoModerado(double[] faixaDeRiscoModerado) {
			this.faixaDeRiscoModerado = faixaDeRiscoModerado;
		}
		public void setFaixaDeRiscoBaixo(double[] faixaDeRiscoBaixo) {
			this.faixaDeRiscoBaixo = faixaDeRiscoBaixo;
		}
	
		
	}

	// public methods
	public ItemDeQuadroDeRelacaoCinturaQuadrilDTO addItem(int[] faixaDeIdade, double[] faixaDeRiscoBaixo, double[] faixaDeRiscoModerado , double[] faixaDeRiscoAlto, double[] faixaDeRiscoMuitoAlto) {
		ItemDeQuadroDeRelacaoCinturaQuadrilDTO item = new ItemDeQuadroDeRelacaoCinturaQuadrilDTO(faixaDeIdade, faixaDeRiscoBaixo, faixaDeRiscoModerado, faixaDeRiscoAlto, faixaDeRiscoMuitoAlto); 
		this.itens.add(item);
		return item;
	}
	
	// enum 
	public enum Classificacao {
		BAIXO ("Baixo"),
		MODERADO ("Moderado"),
		ALTO ("Alto"),
		MUITO_ALTO ("Muito alto");
		String descricao;
		private Classificacao(String descricao) {
			this.descricao = descricao;
		}
		public String getDescricao() {
			return descricao;
		}
	}
}
